package com.sheng.leetcode.year2025.month09.day13;

import org.junit.Test;

/**
 * @author by ls
 * @date 2025/9/15
 * <p>
 * 3541. 找到频率最高的元音和辅音<p>
 * <p>
 * 给你一个由小写英文字母（'a' 到 'z'）组成的字符串 s。<p>
 * 你的任务是找出出现频率 最高 的元音（'a'、'e'、'i'、'o'、'u' 中的一个）<p>
 * 和出现频率最高的辅音（除元音以外的所有字母），并返回这两个频数之和。<p>
 * 注意：如果有多个元音或辅音具有相同的最高频率，可以任选其中一个。如果字符串中没有元音或没有辅音，则其频率视为 0。<p>
 * 一个字母 x 的 频率 是它在字符串中出现的次数。<p>
 * <p>
 * 示例 1：<p>
 * 输入: s = "successes"<p>
 * 输出: 6<p>
 * 解释:<p>
 * 元音有：'u' 出现 1 次，'e' 出现 2 次。最大元音频率 = 2。<p>
 * 辅音有：'s' 出现 4 次，'c' 出现 2 次。最大辅音频率 = 4。<p>
 * 输出为 2 + 4 = 6。<p>
 * <p>
 * 示例 2：<p>
 * 输入: s = "aeiaeia"<p>
 * 输出: 3<p>
 * 解释:<p>
 * 元音有：'a' 出现 3 次，'e' 出现 2 次，'i' 出现 2 次。最大元音频率 = 3。<p>
 * s 中没有辅音。因此，最大辅音频率 = 0。<p>
 * 输出为 3 + 0 = 3。<p>
 * <p>
 * 提示:<p>
 * 1 <= s.length <= 100<p>
 * s 只包含小写英文字母<p>
 */
public class LeetCode3541 {

    @Test
    public void test() {
//        String s = "successes";
        String s = "aeiaeia";
        System.out.println(new Solution().maxFreqSum(s));
    }
}

class Solution {
    public int maxFreqSum(String s) {
        int x = 0, y = 0;
        int[] ints = new int[26];
//        s.chars().forEach(c -> ints[c - 'a']++);
        for (int i = 0; i < s.length(); i++) {
            ints[s.charAt(i) - 'a']++;
            if (s.charAt(i) == 'a'
                    || s.charAt(i) == 'e'
                    || s.charAt(i) == 'i'
                    || s.charAt(i) == 'o'
                    || s.charAt(i) == 'u'
            ) {
                x = Math.max(x, ints[s.charAt(i) - 'a']);
            } else {
                y = Math.max(y, ints[s.charAt(i) - 'a']);
            }
        }
        return x + y;
    }
}
